﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GENERIC.Respository.Interfaces
{
    /// <summary>
    /// Inteface du context
    /// </summary>
    public interface IContext : IDisposable
    {
        /// <summary>
        /// Création d'un Set
        /// </summary>
        /// <typeparam name="TEntity"></typeparam>
        /// <returns></returns>
        IGENERICSet<TEntity> CreateSet<TEntity>() where TEntity : class, new();

        /// <summary>
        /// Sauvegarder les données dans la base
        /// </summary>
        void SaveChanges();

        /// <summary>
        /// Commencer une transaction
        /// </summary>
        /// <returns>Transaction</returns>
        ITransaction BeginTransaction();
    }
}
